import sun.font.StrikeCache;

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Stack;

/**
 * @description 使用两个辅助栈实现队列两个功能：1、队尾插入 2、队头删除
 */

class CQueue {
    //Stack<Integer> s1 = new Stack<>();  两个传统的辅助栈，按照题意应该使用这两个，不过使用下面双端队列定义栈效率更快
    //Stack<Integer> s2 = new Stack<>();

    Deque<Integer> s1 = new ArrayDeque<>();
    Deque<Integer> s2 = new ArrayDeque<>();

    public CQueue() {

    }
    
    public void appendTail(int value) {
        //从队尾插入的元素压入栈s1
        s1.push(value);
    }
    
    public int deleteHead() {
        if (s1.isEmpty() && s2.isEmpty()) return -1; //若队列入空 删除失败
        while (!s1.isEmpty()) {
            s2.push(s1.pop());
        }
        return s2.pop();
    }
}